The Internet has become a popular medium through which much of our traditional social functions are being conducted. E-commerce applications are making personal shopping, business-to-business transactions and interpersonal communication easier than ever. Internet-based electronic auctions allow professionals and individuals to post items for sale onto an electronic auction block for which other members of the Internet community may provide competitive bid prices. Electronic interpersonal communications have become common place as individuals and corporations communicate and conduct business with one another through e-mail, online telephony, video conferencing, and other new emerging communication products employing the Internet.
Despite the widespread acceptance of the Internet, the majority of Internet communications constitutes point-to-point communications that do not occur in real-time. Such point-to-point communication occurs when a single entity (person or business) communicates with only one other entity. Thus, electronic point-to-point conversations do not occur in real time and are not available to be seen or heard by anyone other than the two participants within a particular communications domain.
In an electronic auction context, a single server computer may be used to list a particular item for worldwide bidding. However, the multiple users of the electronic auction system do not interact with one another simultaneously and in real-time, as would typically be the case when an item is introduced on an auction block in the real world. Simultaneous, real-time visual and aural perception of large multi-user virtual communities have heretofore not been provided for by any software or computer systems currently in use on the Internet.
Avatar-based chat rooms and shopping malls are examples of Internet-based multi-user systems in which relatively small numbers of simultaneous users communicate with each other over the Internet. For example, ACTIVEWORLDS.COM provides a realistic, 3-D virtual reality chat service in which virtual reality worlds are created and avatar-based caricatures correspond with each other in a 3-D graphical environment. An “avatar”, as used herein, refers to the physical incarnation of an online user in the virtual reality world. The avatar may be a scanned image of the user's face, for example, or a more complicated computer-generated charicature for use by the virtual reality participant. Such systems are limited, however, in that only a relatively small number of simultaneous participants typically communicate at any one time.
Further, a practical graphical limit to the number of simultaneous virtual reality users is present with respect to various aspects of the transactional ability of virtual reality computer systems. One difficulty is that a large a number of users will typically overrun the ability of any system to provide simultaneous, real-time communication and interaction particularly when graphics and three dimensional (“3D”) avatars and environments are involved. Further complicating these limitations are the computational problems related to the number of multi-point users who may need to perceive one another. These problems increase exponentially with the number of participants. Therefore, a need exists for computer software and hardware systems directed to a large scale multi-user transaction system that facilitates online communication between multiple parties on a simultaneous, real-time basis. A large scale multi-user system of the type needed would support online user communities in which numerous simultaneous users are present within the community and are capable of both aural and visual perception.
One complication in the implementation of a massively multi-player interactive game is the design and implementation of a computer system which can efficiently administer thousands of remote participants in an online virtual community. Two problems to be solved in designing such a system include: (1) creating an efficient system architecture for supporting a large number of simultaneous users; and (2) load balancing the users' transactions among computer servers. Typical computer systems will load balance the number of transactions evenly across all computer servers. This load balancing arrangement may not be desirable in a computer system implementing a virtual reality environment, however, since each server would have to possess a replication of the entire virtual reality in all its transactional variation. Thus, a need exists for a system that can efficiently implement and manage a massive multi-player game of the type described.
Other problems encountered in the design of such a multi-player virtual reality system are the difficulties in designing and implementing the software and computer systems used to monitor the virtual reality community. Much like the real world, a structure for administering to problems and rogue conduct of the users within virtual reality needs to be provided for the numerous users. No centralized monitoring system is currently available in a large scale system to simultaneously answer users' questions, monitor and respond to users' actions and communicate with users of the virtual community on a real-time basis. As a practical matter, administering and monitoring the virtual reality world of thousands of users, including a problem resolution system, system integrity issues, transmission bottleneck detection and elimination and other aspects of the system administration, need to be carefully regulated so that the system runs efficiently and the virtual reality experience provided to the numerous users is as realistic as possible.
Another barrier to the overall usability of a large scale networked multi-user virtual reality system is the relatively large amount of data that the system needs to present to each user. The data is necessary to accommodate the flow of information occurring between participants and the system servers and provide a good graphical rendering of that “person” or avatar. A massive multi-user environment that can accommodate thousands of users must overcome problems associated with providing such information to all users through the administrative computer system so that a virtual reality environment is created. Thus, a need exists for a virtual reality computing system that minimizes the amount of data being transmitted to each of the many users so as to make efficient use of both the computer system's resources and the telecommunications bandwidth that connects the users to the administrative computer system.
In an online virtual reality environment, the transmitted data may include voice or test data for the purpose of permitting the users within the game to communicate with each other and with the system itself. Where the virtual reality environment is a game, such as a role playing game, the data may also include movement commands issued by the players to advance their avatar within the virtual reality environment. Due to the large number of players connected to the game at any point in time, it is advantageous to minimize the size and the latency of the data transmission between the players and the game servers while at the same time preserving some capability to attempt retransmissions for failed data transmissions.
Existing connection oriented protocols, such as the transmission control protocol (“TCP”) operating over the internet protocol (“IP”—or “TCP/IP”) provide for robust error recovery capabilities. In particular, application messages sent as TCP/IP packets include a sequence number as one element of the TCP/IP packet header, or protocol data unit (“PDU”). The entire message is then sent in sequence as a series of TCP/IP datagrams or segments containing both the TCP/IP PDU and the actual data. An acknowledge message is returned to the sending computer by the receiving computer for each message for which the entire series of segments have been received. If any of the segments are lost in the transmission process, the receiving computer transmits a signal requesting the missing segment. The sending computer responds by retransmitting only the missing segment. As a consequence of this reliability, TCP is inefficient in that the entire sequence of segments must be received by the receiving machine before the message is assembled at the receiving end, even if the message arrives out of turn with other messages. The later assembly of the message may render it outdated or irrelevant in view of later sent, but earlier received messages. TCP/IP does not provide for a independent control over the retransmission capabilities of the message.
As an alternative transport mechanism to TCP, a protocol known as the User Datagram Protocol (“UDP”) may be used between computers. A drawback of UDP is that it does not include any error recovery capability for lost datagrams. Instead, UDP sends outgoing datagrams without regard for actual receipt of those datagrams by the receiving machine. While UDP is simple to implement and low in transmission overhead, it does not provide enough error recovery to be useful in an interactive gaming environment that requires some level of certainty that transmitted game information has been received.
Thus, a need also exists for an alternative data transmission protocol to provide a selective and controllable acknowledgement function so as to reliably transmit information between the players and the game servers while at the same time maintaining control of the retransmission of the information.
A player's enjoyment in participating in an online multi-player game is directly related to the quality of the game playing experience, which depends on various factors such as the graphics, audio and interactive activities provided by the game application software. The quality of the graphical presentation, in turn, depends in part on the game software and in part on the quality of the network connection linking the player's PC and the game computer server.
In present online game systems, when a problem arises in the quality of graphics or movement of an avatar, there is no way for the player to know whether such problem is due to a software bug or a network connection. Therefore, a need exists for a graphical indicator to provide the game player with a graphical indication of the quality of the network connection linking the player to the game server so that the player will know if a problem is caused by the game software or the network connection.
Problems related to the rendering of the avatars within the virtual reality also exist due to the limited transmission bandwidth between each user and the administering computer system. In particular, varying levels of detail (“LODs”) are needed to efficiently render a realistic representation in a system where there are many participants in a virtual reality environment. The detail of the image is based on the users' proximity with respect to one another and with respect to inanimate objects presented by the system computers in rendering the virtual reality world. In addition, reliable messaging transport mechanisms must be used between a user and the administrative system so that movements of the characters through the virtual reality world are easily and quickly transmitted to the server without incurring large latencies or delay times.
The details further from the player's avatar do not need to be refreshed as frequently as those nearer the virtual character. Likewise, details outside the view of the player's avatar also may not need to be refreshed as frequently as those within the avatar's virtual view. An avatar, like a real person, however, is constantly moving within its environment. This poses problems with regard to updating the field of view with respect to moving players—a problem that is compounded by the potentially large number of players moving in a multi-player environment. Therefore, a need exists for an improved system for providing and updating details in an environment in which a virtual character's view is constantly changing while limiting the transmission bandwidth between the players' computers and the game computer server while maintaining a realistic game appearance for the players.
For these and other reasons, there is a need for a massive multi-user environment administered by the computer system of the present invention so as to facilitate interpersonal interactions in a virtual reality world.